package com.eddie.flyweight;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/**
 * 网站工厂类
 *
 * @author Eddie
 * @date 2022/08/02 12:04
 **/
public class WebSiteFactory {
    /**
     * 集合，充当池的作用
     */
    private final Map<String, ConcreteWebSite> pool = new HashMap<>();

    //根据网站类型，返回一个网站，如果没有就创建一个网站并放入池中，并返回
    public WebSite getWebSiteCategory(String type) {
        //如果没有就创建一个放入池中
        if (!pool.containsKey(type)) {
            pool.put(type, new ConcreteWebSite(type));
        }
        return pool.get(type);
    }

    //获取网站分类的总数(池中有多少个实际的网站)
    public int getWebSiteCount() {
        return pool.size();
    }
}
